Skip to content

Improve receive request UI#39

Open
Jim8y wants to merge 13 commits into
neoorder:masterfrom
Jim8y:codex/receive-request-ui
Open

Improve receive request UI#39
Jim8y wants to merge 13 commits into
neoorder:masterfrom
Jim8y:codex/receive-request-ui

Conversation

@Jim8y

@Jim8y Jim8y commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Purpose

Split the Receive request UI portion out of the larger receive-flow work so it can be reviewed at a compact PR size.

Scope

  • Reworks ReceivePage into a structured receive request screen.
  • Adds optional memo and reference-data fields.
  • Generates a neo: request URI with optional memo and data query parameters.
  • Shows the request metadata inside the QR card summary.
  • Adds share-QR behavior and keeps save-to-gallery behavior.
  • Adds the required English, Simplified Chinese, and Traditional Chinese strings.

Out of scope

  • No requested amount field.
  • No copy-request action.
  • No ScanPage payment-request parsing changes.
  • No SendPage read-only payment request detail display.
  • No transaction construction, signing, relay, wallet storage, or dAPI behavior changes.

Validation

  • xmllint --noout OneGateApp/Pages/ReceivePage.xaml OneGateApp/Properties/Strings.resx OneGateApp/Properties/Strings.zh-Hans.resx OneGateApp/Properties/Strings.zh-Hant.resx
  • git diff --check
  • MD_APPLE_SDK_ROOT=/Applications/Xcode-26.5.0.app dotnet build OneGateApp/OneGateApp.csproj -f net10.0-ios -p:RuntimeIdentifier=iossimulator-arm64 -p:EnableCodeSigning=false -p:CodesignKey= -p:CodesignProvision= -p:ProvisioningType=automatic

Known existing warnings remain: SQLitePCLRaw NU1903 and iOS asset duplicate MT7158.

Comment thread OneGateApp/Pages/ReceivePage.xaml Outdated
Comment thread OneGateApp/Pages/ReceivePage.xaml Outdated
Jimmy added 2 commits June 20, 2026 21:55
Per review: a requested amount without an asset/token selector has no defined
unit, so drop the amount input and its validation. The receive request keeps
the address, optional asset (from navigation), memo and reference data.
@Jim8y

Jim8y commented Jun 20, 2026

Copy link
Copy Markdown
Contributor Author

Current branch state addresses the earlier requested changes.

  • Removed the requested-amount field, so there is no asset/unit ambiguity.
  • Removed the copy-request button.
  • Updated the PR body so it now matches the current scope: memo/reference metadata, QR summary, Share QR, and Save to gallery.

The previous inline threads are resolved and outdated; requesting a fresh review to clear the stale CHANGES_REQUESTED state.

@erikzhang

Copy link
Copy Markdown
Contributor

conflicts

…st-ui

# Conflicts:
#	OneGateApp/Properties/Strings.zh-Hant.resx
Copilot AI review requested due to automatic review settings June 21, 2026 14:08
@Jim8y

Jim8y commented Jun 21, 2026

Copy link
Copy Markdown
Contributor Author

Rebase/conflict update

Resolved the latest master conflict on this branch and pushed 8f63aa1.

What changed in the conflict resolution:

  • merged origin/master into codex/receive-request-ui
  • kept both the receive-request strings and the newer address/risk strings in Strings.zh-Hant.resx
  • filled the receive-request resource keys across all declared locale files, so Strings*.resx key parity is now clean

Validation:

  • git diff --check passed
  • resource parity check passed across all Strings*.resx files
  • iOS simulator build passed with RuntimeIdentifier=iossimulator-arm64
  • Android emulator build passed with RuntimeIdentifier=android-arm64
  • iOS Simulator verified Receive page shows request details, memo, reference data, share QR, and save to gallery
  • Android Emulator verified Receive page shows Request details, Memo, Reference data, Share QR, and Save to gallery; Android crash buffer was empty

Known existing warnings: SQLitePCLRaw NU1903 remains unrelated; iOS also reports existing duplicate ImageAsset warnings on this branch.

Screenshots are release assets from the fork and are not committed to the repository.

Platform Screenshot
iOS Simulator - Receive request UI iOS Receive request UI
Android Emulator - Receive request UI Android Receive request UI

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the app’s Receive screen into a “payment request” style UI, adding optional memo/reference fields that are encoded into a neo: request URI and displayed in the QR card, along with a new “Share QR” action.

Changes:

  • Restructured ReceivePage UI into a scrollable layout with a request-details section and QR metadata summary.
  • Added optional memo and data query parameters to the generated neo: URI and surfaced them in the QR card summary.
  • Added new localized strings (EN, zh-Hans, zh-Hant, plus other supported locales) and updated the generated resource designer.

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
OneGateApp/Pages/ReceivePage.xaml Reworks Receive UI to include request details inputs, QR summary, and share/save actions.
OneGateApp/Pages/ReceivePage.xaml.cs Adds memo/data state, request summary + URI query generation, and share-QR implementation.
OneGateApp/Properties/Strings.resx Adds new EN strings for request details fields and share-QR.
OneGateApp/Properties/Strings.zh-Hans.resx Adds new zh-Hans strings for request details fields and share-QR.
OneGateApp/Properties/Strings.zh-Hant.resx Adds new zh-Hant strings for request details fields and share-QR.
OneGateApp/Properties/Strings.de.resx Adds new DE strings for request details fields and share-QR.
OneGateApp/Properties/Strings.es.resx Adds new ES strings for request details fields and share-QR.
OneGateApp/Properties/Strings.fr.resx Adds new FR strings for request details fields and share-QR.
OneGateApp/Properties/Strings.id.resx Adds new ID strings for request details fields and share-QR.
OneGateApp/Properties/Strings.it.resx Adds new IT strings for request details fields and share-QR.
OneGateApp/Properties/Strings.ja.resx Adds new JA strings for request details fields and share-QR.
OneGateApp/Properties/Strings.ko.resx Adds new KO strings for request details fields and share-QR.
OneGateApp/Properties/Strings.nl.resx Adds new NL strings for request details fields and share-QR.
OneGateApp/Properties/Strings.pt-BR.resx Adds new pt-BR strings for request details fields and share-QR.
OneGateApp/Properties/Strings.ru.resx Adds new RU strings for request details fields and share-QR.
OneGateApp/Properties/Strings.tr.resx Adds new TR strings for request details fields and share-QR.
OneGateApp/Properties/Strings.vi.resx Adds new VI strings for request details fields and share-QR.
OneGateApp/Properties/Strings.Designer.cs Regenerates strongly-typed resource accessors for the new keys.
Files not reviewed (1)
  • OneGateApp/Properties/Strings.Designer.cs: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread OneGateApp/Pages/ReceivePage.xaml.cs Outdated
Comment thread OneGateApp/Pages/ReceivePage.xaml.cs Outdated
Comment thread OneGateApp/Pages/ReceivePage.xaml.cs Outdated
@Jim8y

Jim8y commented Jun 21, 2026

Copy link
Copy Markdown
Contributor Author

Latest review follow-up after merging current master (bb40f15): addressed the three Copilot comments in 4f5eb48.

Changes:

  • AddressUri now escapes the address component.
  • HasRequestSummary checks Memo and RequestData directly without building RequestSummary.
  • The share QR path opens and disposes the screenshot stream explicitly before copying.

Validation:

  • Conflict-marker scan passed.
  • git diff --check passed.
  • Resource parity passed across all 15 Strings*.resx files, 289 keys.
  • iOS simulator build/install/Receive UI verified.
  • Android emulator build/install/Receive UI verified with empty crash log.

Refreshed screenshots:

Screenshots are GitHub release assets only and are not committed to the repository. Ready for re-review.

…st-ui

# Conflicts:
#	OneGateApp/Properties/Strings.zh-Hant.resx
@Jim8y

Jim8y commented Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

Base refresh validation update:

  • Merged latest origin/master (3b20d5f) into codex/receive-request-ui; pushed merge commit 75be05c.
  • Conflict resolution was limited to OneGateApp/Properties/Strings.zh-Hant.resx: kept this PR’s receive-request strings and the base DApp submission strings together. No feature logic changed.
  • GitHub reports this PR as mergeable; unresolved review threads: 0. The visible CHANGES_REQUESTED state is an old reviewer state with no unresolved thread for us to address.
  • Android emulator validation (emulator-5554): dotnet build OneGateApp/OneGateApp.csproj -f net10.0-android -c Debug -p:EmbedAssembliesIntoApk=true, installed the signed APK, launched org.neoorder.onegate/crc64e93af8ff8666345c.MainActivity, confirmed a running pid, and captured a screenshot.
  • iOS simulator validation (iPhone 17 Pro, iOS 26.5): dotnet build OneGateApp/OneGateApp.csproj -f net10.0-ios -c Debug -p:RuntimeIdentifier=iossimulator-arm64, installed and launched the app, and captured a screenshot.
  • Existing warning observed: SQLitePCLRaw.lib.e_sqlite3 NU1903, unchanged/pre-existing.

Screenshots are stored as GitHub release assets only, not committed to the repo:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants